/**
 * 导入修复工具
 * 用于修复和验证所有模块导入问题
 */

console.log('🔧 开始修复导入问题...');

// 验证关键模块是否可以正常导入
try {
  // 1. 验证 AuthContext
  console.log('1. 验证 AuthContext...');
  import('../contexts/AuthContext').then(module => {
    if (module.useAuth) {
      console.log('✅ useAuth 导入正常');
    } else {
      console.error('❌ useAuth 导入失败');
    }
  }).catch(error => {
    console.error('❌ AuthContext 模块导入失败:', error);
  });

  // 2. 验证 usePermission
  console.log('2. 验证 usePermission...');
  import('../hooks/usePermission').then(module => {
    if (module.usePermission) {
      console.log('✅ usePermission 导入正常');
    } else {
      console.error('❌ usePermission 导入失败');
    }
  }).catch(error => {
    console.error('❌ usePermission 模块导入失败:', error);
  });

  // 3. 验证 datasourceApi
  console.log('3. 验证 datasourceApi...');
  import('../services/datasourceApi').then(module => {
    if (module.datasourceApi) {
      console.log('✅ datasourceApi 导入正常');
    } else {
      console.error('❌ datasourceApi 导入失败');
    }
  }).catch(error => {
    console.error('❌ datasourceApi 模块导入失败:', error);
  });

  // 4. 验证 requestGuard
  console.log('4. 验证 requestGuard...');
  import('../utils/requestGuard').then(module => {
    if (module.requestGuard && module.withRequestGuard) {
      console.log('✅ requestGuard 导入正常');
    } else {
      console.error('❌ requestGuard 导入失败');
    }
  }).catch(error => {
    console.error('❌ requestGuard 模块导入失败:', error);
  });

  // 5. 验证 PermissionGuard
  console.log('5. 验证 PermissionGuard...');
  import('../components/PermissionGuard').then(module => {
    if (module.PermissionGuard && module.ActionGuard) {
      console.log('✅ PermissionGuard 导入正常');
    } else {
      console.error('❌ PermissionGuard 导入失败');
    }
  }).catch(error => {
    console.error('❌ PermissionGuard 模块导入失败:', error);
  });

  // 6. 验证类型定义
  console.log('6. 验证类型定义...');
  import('../types/datasource').then(module => {
    if (module.DatabaseType && module.TestStatus) {
      console.log('✅ 类型定义导入正常');
    } else {
      console.error('❌ 类型定义导入失败');
    }
  }).catch(error => {
    console.error('❌ 类型定义模块导入失败:', error);
  });

  console.log('🎉 导入修复检查完成！');

} catch (error) {
  console.error('❌ 导入修复过程中发生错误:', error);
}

// 提供修复建议
console.log('\n💡 如果仍有导入问题，请检查以下几点:');
console.log('1. 确保所有文件路径正确');
console.log('2. 确保所有导出语句正确');
console.log('3. 确保没有循环依赖');
console.log('4. 重启开发服务器');
console.log('5. 清除浏览器缓存');

export default function fixImports() {
  console.log('🔧 导入修复工具已运行');
}
